package probandoTitiritero;


import vista.VistaAvionCivil;
import vista.VistaAvioneta;
import vista.VistaBombardero;
import vista.VistaExplorador;
import vista.VistaFondo1;
import vista.VistaHelicoptero;
import vista.VistaTripulado;
import juego.AvionCivil;
import juego.Avioneta;
import juego.Bombardero;
import juego.Explorador;
import juego.Helicoptero;
import juego.Tripulado;
import ar.uba.fi.algo3.titiritero.ControladorJuego;




//aca pruebo el tripulado
public class Programa2 {

    public static void main(String[] args) {

    	/*
         * Primero instancio mi modelo: un Tripulado en un fondo
         */
              
        Fondo unFondo = new Fondo(200,200);
		Tripulado algo42 = new Tripulado();
		AvionCivil unAvionCivil = new AvionCivil(20,0);
		Helicoptero unHelicoptero = new Helicoptero (100,100);
		Bombardero bombardero= new Bombardero(150,150);
		Explorador explorador= new Explorador(180,100);
		Avioneta avioneta = new Avioneta(300,50);

            /*
             * Luego instancio los objetos del framework: una ventana y el controlador
             */             
            ControladorJuego controlador = new ControladorJuego(false);
            
            VentanaPrincipal ventana = new VentanaPrincipal(controlador);
            controlador.setSuperficieDeDibujo(ventana.getSuperficieDeDibujo());

            ventana.setVisible(true);
            controlador.agregarKeyPressObservador(new EscuchadorDeKeyPress(algo42));
            
            /*
             * Instancio un cuadrado para que actue como vista de la mesa
             */
            VistaFondo1 vistaFondo = new VistaFondo1();
            vistaFondo.setPosicionable(unFondo);
            
            /*
             * Instancio una imagen para que actue como vista de la pelota
             */
            VistaTripulado vistaTripulado = new VistaTripulado();
            vistaTripulado.setPosicionable(algo42);
            VistaAvionCivil vistaAvionCivil = new VistaAvionCivil();
            vistaAvionCivil.setPosicionable(unAvionCivil);
            VistaHelicoptero vistaHelicoptero = new VistaHelicoptero();
            vistaHelicoptero.setPosicionable(unHelicoptero);
            VistaBombardero vistaBombardero = new VistaBombardero();
            vistaBombardero.setPosicionable(bombardero);
            VistaExplorador vistaExplorador = new VistaExplorador();
            vistaExplorador.setPosicionable(explorador);
            VistaAvioneta vistaAvioneta = new VistaAvioneta();
            vistaAvioneta.setPosicionable(avioneta);
            
            
            /*
             * agrego la pelota a la lista de objetos vivios del controlador
             * para que este le de vida dentro del gameloop
             */
            controlador.agregarObjetoVivo(algo42);
            controlador.agregarObjetoVivo(unAvionCivil);
            controlador.agregarObjetoVivo(unHelicoptero);
            controlador.agregarObjetoVivo(bombardero);
            controlador.agregarObjetoVivo(explorador);
            controlador.agregarObjetoVivo(avioneta);
            
            //TextoEstatico unTexto = new TextoEstatico("Prueba Tripulado");
            //unTexto.setColor(Color.white);
            //unTexto.setPosicionable(algo42);
            
            
            /*
             * Agrego los objetos que actuan como vista a la lista de dibujables del controlador
             * para que sean repintados al final de cada gameloop
             */
            
            controlador.agregarDibujable(vistaFondo);
            controlador.agregarDibujable(vistaTripulado); 
            controlador.agregarDibujable(vistaAvionCivil);
            controlador.agregarDibujable(vistaHelicoptero);
            controlador.agregarDibujable(vistaBombardero);
            controlador.agregarDibujable(vistaExplorador);
            controlador.agregarDibujable(vistaAvioneta);
            //controlador.agregarDibujable(unTexto);
            
            controlador.agregarMouseClickObservador(vistaFondo);
            
            
            /*
             * finalmente establezco el intervalo de sleep dentro del gameloop
             * y comienzo a ejecutar
             */
            controlador.setIntervaloSimulacion(100);
            controlador.comenzarJuego();

    }

}


